home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Delphi Magazine Collection 2001
/
Delphi Magazine Collection 20001 (2001).iso
/
DISKS
/
ISSUE09
/
CODERS
/
KEYDEFS.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
1996-04-04
|
3KB
|
102 lines
unit KeyDefs ;
(*****) interface (*******************************)
uses
WinTypes ;
const
MaxKeys = 41 ;
MaxTokLen = 9 ;
ControlKey = '^' ;
AltKey = '%' ;
ShiftKey = '+' ;
KeyGroupOpen = '{' ;
KeyGroupClose = '}' ;
type
TKeyString = string[MaxTokLen] ;
TKeyDef = record
Key : TKeyString ;
vkCode : byte ;
end (* record TKeyDef *) ;
(* SendKeys error codes *)
TSendKeyError = ( sk_None, sk_FailSetHook, sk_InvalidToken, sk_UnknownError ) ;
const
KeyDefArray : array [1..MaxKeys] of TKeyDef =
(
(* provide "Metacodes" so that special keys may be included in strings *)
( Key : '+' ; vkCode : Ord( ShiftKey )),
( Key : '^' ; vkCode : Ord( ControlKey )),
( Key : '%' ; vkCode : Ord( AltKey )),
( Key : '{' ; vkCode : Ord( KeyGroupOpen )),
( Key : '}' ; vkCode : Ord( KeyGroupClose )),
( Key : 'F1' ; vkCode : vk_F1 ),
( Key : 'F2' ; vkCode : vk_F2 ),
( Key : 'F3' ; vkCode : vk_F3 ),
( Key : 'F4' ; vkCode : vk_F4 ),
( Key : 'F5' ; vkCode : vk_F5 ),
( Key : 'F6' ; vkCode : vk_F6 ),
( Key : 'F7' ; vkCode : vk_F7 ),
( Key : 'F8' ; vkCode : vk_F8 ),
( Key : 'F9' ; vkCode : vk_F9 ),
( Key : 'F10' ; vkCode : vk_F10 ),
( Key : 'F11' ; vkCode : vk_F11 ),
( Key : 'F12' ; vkCode : vk_F12 ),
( Key : 'INSERT' ; vkCode : vk_Insert ),
( Key : 'INS' ; vkCode : vk_Insert ),
( Key : 'DELETE' ; vkCode : vk_Delete ),
( Key : 'HOME' ; vkCode : vk_Home ),
( Key : 'END' ; vkCode : vk_End ),
( Key : 'PGUP' ; vkCode : vk_Prior ),
( Key : 'PGDN' ; vkCode : vk_Next ),
( Key : 'LEFT' ; vkCode : vk_Left ),
( Key : 'RIGHT' ; vkCode : vk_Right ),
( Key : 'UP' ; vkCode : vk_Up ),
( Key : 'DOWN' ; vkCode : vk_Down ),
( Key : 'TAB' ; vkCode : vk_Tab ),
( Key : 'ENTER' ; vkCode : vk_Return ),
( Key : 'RETURN' ; vkCode : vk_Return ),
( Key : 'SPACE' ; vkCode : vk_Space ),
( Key : 'BKSP' ; vkCode : vk_Back ),
( Key : 'BS' ; vkCode : vk_Back ),
( Key : 'BACKSPACE' ; vkCode : vk_Back ),
( Key : 'PRTSC' ; VkCode : vk_SnapShot ),
( Key : 'SHIFT' ; vkCode : vk_Shift ),
( Key : 'ESCAPE' ; vkCode : vk_Escape ),
( Key : 'ESC' ; vkCode : vk_Escape ),
( Key : 'CAPSLOCK' ; vkCode : vk_Return ),
( Key : 'NUMLOCK' ; vkCode : vk_Return )
) ;
function FindKeyInArray( Key : TKeyString ; var Code : byte ) : boolean ;
(*****) implementation (**************************)
uses
SysUtils ;
function FindKeyInArray( Key : TKeyString ; var Code : byte ) : boolean ;
var
i : word ;
begin
Result := FALSE ;
for i := Low( KeyDefArray ) to High( KeyDefArray ) do
if UpperCase( Key ) = KeyDefArray[i].Key then
begin
Code := KeyDefArray[i].vkCode ;
Result := TRUE ;
Break ;
end ;
end ;
{$ifdef VER80}
initialization
{$else}
begin
{$endif}
(* unit KeyDefs -- initialization code *)
(* NONE *)
end (* unit KeyDefs -- initialization code *) .